<?php
function fail($message, $data = [], $code = 0)
{
    \think\Db::rollback();

    $result = [
        'code' => $code,
        'data' => $data,
        'msg'  => is_array($message) ? json_encode($message) : $message,
    ];

    // 如果未设置类型则自动判断
    $type     = 'json';
    $response = \think\Response::create($result, $type, 200);

    throw new \think\exception\HttpResponseException($response);
}

function order_no($unique = 0) {
    $orderNo = date('YmdHis') . substr(microtime(), 2, 5) . mt_rand(10000, 99999);
    if (!empty($unique)) {
        $orderNo = $orderNo . $unique;
    }

    return $orderNo;
}

function isValidPhoneNumber($phone) {
    // 中国大陆手机号码正则，11位数字，以1开头，第二位为3-9之间的任意数字
    return preg_match('/^1[3-9]\d{9}$/', $phone);
}

function timesf($bdate,$edate){
    $start_time = new \DateTime($bdate);
    $end_time = new \DateTime($edate);

    // 判断是否同年
    if ($start_time->format('Y') === $end_time->format('Y')) {
        // 判断是否同一天
        if ($start_time->format('Y-m-d') === $end_time->format('Y-m-d')) {
            // 同一天
            $time_range = $start_time->format('Y-m-d H:i') . ' 至 ' . $end_time->format('H:i');
        } else {
            // 同年但不同天
            $time_range = $start_time->format('Y-m-d H:i') . ' 至 ' . $end_time->format('m-d H:i');
        }
    } else {
        // 不同年
        $time_range = $start_time->format('Y-m-d H:i') . ' 至 ' . $end_time->format('Y-m-d H:i');
    }
    return $time_range;
}


function generatePayType($balance_deduction, $final_amount, $deposit) {
    $payTypes = [];

    if ($balance_deduction > 0) {
        $payTypes[] = '钱包￥' . $balance_deduction . '元';
    }

    if ($final_amount > 0) {
        $payTypes[] = '微信￥' . $final_amount . '元';
    }

    if ($deposit > 0) {
        $payTypes[] = '押金￥' . $deposit . '元';
    }

    // 使用 implode 将数组转换为字符串
    return implode(', ', $payTypes);
}